;A=4
;B=5
;C=7
;D=3
;X=B+C
;Y=D-C
;Z=(((((A+C)-B)*C)-X)/Y)
;A=X*Y*3
;
;A,B,C, D en memoria, X = t8,Y = t9,Z = f0 en registros, Z es double

.global main
main:
	addu	r29,r0,60	;levanto el sp por que parece que arranca en 0 en el windlx
	subu 	r29,r29,24	;8 del segmento obligatorio, 16 del segmento de variables locales
	sw		20(r29),r30
	sw		16(r29),r28
	;move	r30,r29
	addi	r8,r0,4
	sw		0(r29),r8	;A=4
	addi	r8,r0,5
	sw		4(r29),r8	;B=5
	addi	r8,r0,7
	sw		8(r29),r8	;C=7
	addi	r8,r0,3
	sw		12(r29),r8	;D=3

	lw		r8,4(r29)	;B
	lw		r9,8(r29)	;C
	add		r24,r8,r9	;X=B+C

	lw		r8,12(r29)	;D
	lw		r9,8(r29)	;C
	sub		r25,r8,r9	;Y=D-C

	lw		r8,0(r29)	;A
	lw		r9,8(r29)	;C
	add		r10,r8,r9	;A+C
	lw		r8,4(r29)	;B
	sub		r10,r10,r8	;(A+C)-B
	lw		r8,8(r29)	;C
	mult	r10,r10,r8	;((A+C)-B)*C

	movi2fp	f4,r25		;paso a fp el reg Y
	cvti2d	f8,f4


	sub		r10,r10,r24	;(((A+C)-B)*C)-X
	

	movi2fp	f2,r10		;paso a fp el valor temporal
	cvti2d	f6,f2		;paso a fp el reg Y

; ANTES	movi2fp	f4,r25		;paso a fp el reg Y
;	cvti2d	f8,f4

	divd	f0,f6,f8	;Z=(((((A+C)-B)*C)-X)/Y)

	mult	r8,r24,r25	;X*Y

	addi	r9,r0,3

	mult	r8,r8,r9	;X*Y*3

	addi	r2,r0,1		;exit ok

	sw		0(r29),r8	;A=X*Y*3

; ANTES	addi	r2,r0,1		;exit ok

	lw		r28,16(r29)
	lw		r30,20(r29)
	addu 	r29,r29,24
	trap	0			;j		r31









